Information can be transmitted over modern networks in various manners. Information can be sent to all members of a network (“broadcast”), to a group of users that joined a multicast group of users (“multicast”), or to a specific user (“unicast”).
Internet Protocol (IP) multicast is a technique for many-to-many communication over an IP infrastructure. This is usually is used for one-to-many communication. It conforms to a larger receiver population while not requiring prior knowledge of the identity of the receivers or the number of receivers. Multicast utilizes network infrastructure efficiently by requiring the source to send a data packet only once, even if it needs to be delivered to a large number of receivers. The nodes in the network take care of replicating the data packet to reach multiple receivers only where necessary. An IP Multicast group address is used by the sources and the receivers to send and receive content. Sources use the group address as the IP destination address in their data packets. Receivers use this group address to inform the network that they are interested in receiving packets sent to that group. A user joins a multicast group by sending a “join” message, and can leave the multicast group by sending a “leave” message.
The protocol used by receivers to join a group is called the Internet Group Management Protocol or IGMP. Once the receivers join a particular IP Multicast group, a multicast distribution tree is constructed for that group. The multicast distribution tree is updated in response to receiving a “join” message or a “leave” message from the user.
The protocol most widely used for this is Protocol Independent Multicast or PIM. It sets up multicast distribution trees such that data packets sent to a multicast group reach all receivers who have “joined” the group.
On many occasions, television programs (hereinafter—“programs”) are conveyed over multicast traffic. Users belonging to the same multicast group receive practically the same copy of the program. In order to receive that program the users must join the relevant multicast group.
Advertisement insertion may require the users to be tuned into other information streams. This tuning can require a different multicast group or may require tuning into another unicast address.
Advertisement insertion is performed by a media provider. In many cases the media provider is not aware of the time of joining of users to multicast groups, and neither are they aware of the time that users leave the multicast groups. These timings are responsive to the time of sending the “join” and “leave” massages, as well as to the time of the actual join and leave actions (especially—the update of the multicast distribution tree). Knowing the timings of join and leave actions are required for providing seamless advertisement insertion.
There is a need to provide systems and methods that can efficiently perform content insertion.